<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!-- Prmoise 是不是异步 -->
    <!-- Prmoise 本身不是异步的 里面的回调都是异步的 -->
    <script>
        // let p = new Promise();//构造函数
        // promise的执行优先于一切 
        // JS单线程 同步 异步=>(宏任务 微任务)
        // 宏任务 定时器  ajax（XMLHttpRequest）=>$ajax() 原生XMLHTTP封装过程
        // 微任务 promise =>axios  .then() =>axios就是原生XMLHTTP的请求+promise进行封装 
        // 宏任务执行在微任务之后
        // prmise的三种状态
        // pending 等待 迟迟没有做决定
        // resolve (fulfilled) 成功
        // rejected 失败
        // setTimeout(()=>{
        //     console.log("4")
        // },0);
        // console.log(2)
        let q = new Promise((resolve , reject)=>{
            // console.log(5)
            // resolve reject 回调函数 
            // resolve("帅气")//fulfilled 
            // console.log(111)
            reject(1)//rejected
            // resolve和reject只能执行一个
            // console.log(33333)

        })
        // q.then(
        //     //.then()的第一个函数是成功的回调
        // (res)=>{
        //     console.log(res)//resolve 的入参
        // },(err)=>{
        //     // 第二个函数是失败的回调
        //     console.log(err)
        // })
        // catch方法只能执行失败的回调
        q.catch(
            err=>{
                console.log(err)
            }
        )
        // console.log(1)
        console.log(q)
    </script>
</body>
</html>